package com.oa.hyperion.service;

import com.github.pagehelper.PageInfo;
import com.oa.hyperion.entity.assets.AssetsAllocation;
import com.oa.hyperion.entity.assets.AssetsDetail;
import com.oa.hyperion.repository.assets.AssetsDetailMapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.UpdateProvider;

import java.util.List;

/**
 * author yuanchongwei
 * date 2022-1-18
 */
public interface AssetsDetailService {
    /**
     * 新增
     * @param assetsDetail 使用明细
     */
    void insert(AssetsDetail assetsDetail);

    /**
     * 更新
     * 资产归还时修改归还信息：归还状态，归还时间
     * author yuanchongwei
     * date 2022-1-18
     * @param assetsDetail 使用明细
     */
    boolean update(AssetsDetail assetsDetail);

    /**
     * 查询所有使用明细
     * @return
     */
    List<AssetsDetail> getAllDetails();

    /**
     * 查询
     * 根据资产id查询资产使用明细信息
     * @param asset_id 资产id
     * @return 资产使用明细
     */
    public List<AssetsDetail> getAssetsDetailByAssetId(int asset_id);

    /**
     * 查询
     * 根据申请部门查询资产使用明细信息
     * @param apply_dpt 申请部门
     * @return 资产使用明细
     */
    public List<AssetsDetail> getAssetsDetailByApplydpt(int apply_dpt);

    /**
     * 查询
     * 根据经办人查询资产使用明细信息
     * @param handler 经办人
     * @return 资产使用明细
     */
    public List<AssetsDetail> getAssetsDetailByHandler(String handler);

    /**
     * 查询
     * 根据归还状态查询资产使用明细信息
     * @param returned 归还状态
     * @return 资产使用明细
     */
    public List<AssetsDetail> getAssetsDetailByReturned(String returned);

    /**
     * 分页展示
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<AssetsDetail> getByCondition(int pageNum, int pageSize);
}
